home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
a_utils
/
_archvrs
/
unix
/
shar.lha
/
shar
/
README
< prev
next >
Wrap
Text File
|
1987-12-03
|
4KB
|
114 lines
This set of tools is designed to make it easier to ship sources around.
I wrote them because I do a lot of that as moderator of mod.sources, and
nothing else did the job for me. This set isn't perfect, but's very
close. Included are a program to find source files, a program to partition
them into reasonable sizes, a program to make shell archives out of
them, a program to strip mail, news, and notes headers from archives
before feeding them to a shell, and a program to simulate /bin/sh for
non-Unix system.
The sources in this distribution are being released into the public
domain; do what you want, but let your conscience be your guide.
If you somehow enhance this package, please send it on to me so that
others can benefit.
I'll try to answer any questions or problems that come up -- send me
electronic mail.
To install, edit the Makefile and shar.h as necessary (see detailed list
of parameters, below), then run make; doing make install will put the
manpages and executables where you told it to. I don't think "make lint"
will work anywhere other than a 4.[23]BSD system.
If you aren't running on Unix, then you will have to write replacements
for the functions in sysfuncs.c; everything else should be OK. If you
don't have a Unix-like make available, you will have to write a command
script or otherwise work out something with your compiler.
I freely stole ideas from a number of people who have been good enough to
put their stuff out on Usenet. Particular thanks to Gary Perlman and Larry
Wall for giving me something nice to reverse-engineer, and Michael Mauldin
for unshar. It may have been a mistake to take people's names out of the
code; if I upset anyone by doing this, please let me know.
There are a couple of things that could still be done, but I'm tired of
working on this, and I don't need them often enough to want to come up
with general solutions. Specifically:
Automatically splitting up large text files;
Automatically invoking uuencode when sending binaries; and
Perhaps arranging for the archive to invoke uudecode.
Enjoy!
Richard $alz
Mirror Systems
2067 Massachusetts Avenue
Cambridge, MA 02140
{ihnp4, harvard!wjh12, cca, cbosgd, seismo}!mirror!rs
rs%mirror.UUCP@cca
rs@mirror.TMC.COM
My, my, my, aren't we anal:
$Header: README,v 1.7 87/03/24 18:09:04 rs Exp $
COMPILATION PARAMETERS
----------------------
[The Makefile is ... er ... self-documented.]
CAN_POPEN
If #define'd, then findsrc will do a popen() to file(1) to see if
the file is executable, etc.
DEF_SAVEIT
This is used by unshar, and sets whether or not to save the headers
by default.
GETWD GETCWD PWDPOPEN PWDGETENV
These are used in cwd.c to determine how to find out the current
directory, which unshar sometimes needs to know.
GETHOSTNAME HOST UNAME UUNAME WHOAMI
There are used in host.c to determine how to find out the host name,
which shar needs to know.
IDX, RDX
Some Unices call index/rindex strchr/strrchr.
IN_SYS_DIR IN_SYS_NDIR IN_NDIR
The findsrc program uses the BSD-style directory-reading routines.
These routines, and the structures they use, are typically defined in
one of <sys/dir.h> <sys/ndir.h> or "ndir.h", respectively.
NEED_MKDIR
In sysfuncs, this includes a subroutine that calls system() to do a
mkdir command; otherwise mkdir() must be in your C library.
NEED_GETOPT
Define this if getopt is not in your C library.
SYS_WAIT
Define this if you have <sys/wait.h> and the vfork system call.
THE_TTY
This should be a "device" to open so we can read input from the
user's terminal if standard input is, e.g., coming from a file.
Unix systems should use the default "/dev/tty"; MS-DOS and would
be "CON:" I guess?
USE_MY_SHELL
Used in unshar. If #define'd, then the archive is passed to my shell
interpreter sub-routine. The default is to do a popen() to /bin/sh.
USER_ENV
The name of the environment variable that holds the user's name,
which shar needs to know.
typedef int *align_t
This is a worst-case alignment, to get lint to shut up about malloc'd
space. For ANSI C, e.g., this should be "typedef void *align_t".
typedef long time_t
What datatype is needed to hold a time value.
typedef long off_t
What datatype is needed to hold a file size.